One of the current trends in business applications is the demand to manage data which is rapidly increasing in both volume and complexity, e.g., the so called “Big Data” environments. At the same time, enterprises look for opportunities to simplify and make their operations more efficient. The modernization of the information systems is a crucial factor. The adoption of new technologies such as in-memory databases, mobile business applications, cloud computing, etc., offer the means for improving business processes and overall enterprise efficiency, which also helps to introduce new services to customers, lower costs, and ensure competitive advantage by better market positioning.
One way to improve and simplify the management of voluminous and complex data is to work with subsets or snapshots of data, focusing on select database entities. Such entities could be different structures (tables, views, etc.) which are read from a database and stored in a cache, e.g., in operative memory as application context. Furthermore, most of the resource consuming calculations could take place directly within the databases, e.g., as a stored procedure, which is especially efficient for in-memory database solutions. Additionally, the cached data and the actions applied on the data can be displayed using user interfaces of lightweight client applications on various network-enabled client devices.
As the database entities can change dynamically, the cached and displayed data should be frequently refreshed to minimize any risks to data consistency, e.g., caused by stored database calculations, various operations on the cached data, etc. Usually, the cached database entities are re-checked/re-read as frequently as reasonable and feasible, wherein the smaller intervals between refreshing the cached data lowers the risk for data inconsistency but increases system load.